package TP4;

public class VectorEstado {

    private int numero;
    private double rnd1;
    private double rnd2;
    private int contadorDefinitivamenteSi;
    private Recuerda recuerda;
    private Grado grado;

    public VectorEstado(int n, int contador) {
        numero = n;
        contadorDefinitivamenteSi = contador;

        if (numero > 0) {
            calcularRecuerda();
            grado = calcularGrado();
            aumentarContador();
        }
    }

    private void calcularRecuerda() {
        rnd1 = Math.random();

        if (rnd1 < 0.40) {
            recuerda = Recuerda.SI;
        } else {
            recuerda = Recuerda.NO;
        }
    }

    private Grado calcularGrado() {
        rnd2 = Math.random();

        return recuerda.gradoRecuerdo(rnd2);
    }

    @Override
    public String toString() {
        String s = "";

        s += numero + "\t\t" + String.format("%1$,.2f", rnd1) + "\t";

        if (recuerda == Recuerda.SI) {
            s += "Sí";
        } else {
            s += "No";
        }

        s += "\t\t" + String.format("%1$,.2f", rnd2) + "\t";

        if (grado == Grado.DEFINITIVAMENTE_NO) {
            s += "Defin. no";
        } else if (grado == Grado.DUDOSO) {
            s += "Dudoso\t";
        } else {
            s += "Defin. sí";
        }

        s += "\t\t" + contadorDefinitivamenteSi;

        return s;
    }

    public int getContadorDefinitivamenteSi() {
        return contadorDefinitivamenteSi;
    }

    private void aumentarContador() {
        if (grado == Grado.DEFINITIVAMENTE_SI) {
            contadorDefinitivamenteSi++;
        }
    }
}
